perm filename BM[NEW,LCS]2 blob
sn#356868 filedate 1978-05-17 generic text, type T, neo UTF8
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,1
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 1
1) C**** BEAMS, NREST ***********
1) SUBROUTINE BEAMS
**** File 2) BX.F4[NEW,LCS], Page 1 line 1
2) COMMENT ⊗ VALID 00002 PAGES
2) C REC PAGE DESCRIPTION
2) C00001 00001
2) C00002 00002 SUBROUTINE BEAMS
2) C00023 ENDMK
2) C⊗;
2) SUBROUTINE BEAMS
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 9
1) 1 /LIMIT/LIMIT,ITEM,LL,IS,IX
1) 1 /SCM/V(78),I,LCNT,STAFF,LIST(200),REND
**** File 2) BX.F4[NEW,LCS], Page 2 line 8
2) 1 /LIMIT/LIMIT,ITEM,LL,IS,IX /DPY/ST(3900),RHY(100)
2) 1 /SCM/V(78),I,LCNT,STAFF,LIST(200),REND
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 13
1) 1 ,IXX,ISEMI,IQT,VX(50),IAMP,K,KN,M,MODE,IBLA
1) CC DATA BX/25./,BY/.5/,DFAC/6./,CURV/0.9/
1) C THESE ARE USED TO DETERMINE CURVE OF SLURS AT 63 (21700)
1) IF(RMODE.LT.500)GO TO 251
1) IF(MODE.EQ.4)RETURN
1) C PICKS UP SLURS ONLY WHEN USING SUBR. 'EXTRA' *********
1) 251 INVT=-1
1) LS=IS
**** File 2) BX.F4[NEW,LCS], Page 2 line 12
2) 1 ,JXX,ISEMI,IQT,VX(50),IAMP,K,KN,M,MODE,IBLA
2) IF(MODE-4)33,44,555
2) 33 CALL MX
2) RETURN
2) 555 CALL SX
2) RETURN
2) 44 IF(RMODE.GE.500)RETURN
2) C PICKS UP SLURS ONLY WHEN USING SUBR. 'EXTRA' *********
2) INVT=-1
2) LS=IS
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 24
1) IF(MODE.NE.4)JNTC=JNTC-1
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) C JNTC=NUM OF NTS NOW
1) IF(MODE.EQ.3)GO TO 25
1) IF(REND.NE.0)GO TO 25
1) REND=3
**** File 2) BX.F4[NEW,LCS], Page 2 line 25
2) J=0
2) A=-1.
2) DO 1125 K=1,IZ
2) IF(R(1,K).GT.2)GO TO 1125
2) C GET BACK RHYTH. INFO IN P9 OF NOTES (FOR JDIF, COMPOSITE BEAMS)
2) B=R(3,K)
2) IF(A.EQ.B)GO TO 1125
2) C SKIP CHORD NOTES.
2) A=B
2) J=J+1
2) RHY(K)=V(J)
2) 1125 CONTINUE
2) 125 IF(REND.NE.0)GO TO 25
2) REND=3
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 80
1) CC IF(NOTAIL(X))NL=NR
1) 2022 IF(NR.EQ.IRHY)GO TO 422
**** File 2) BX.F4[NEW,LCS], Page 2 line 90
2) 2022 IF(NR.EQ.IRHY)GO TO 422
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 85
1) CC***822 IF(NR-NL-NN-N.GE.0)GO TO 322
1) 822 IF(NR-NL-NN-N.GT.0)GO TO 322
1) C IGNORE IF ONLY ONE NOTE FILLS UNIT
1) CC N=NN+N
1) C UPDATE REST AND GRACE COUNTER
1) 722 IF(NR.EQ.IRHY)GO TO 422
**** File 2) BX.F4[NEW,LCS], Page 2 line 94
2) 822 IF(NR-NL-NN-N.GT.0)GO TO 322
2) C IGNORE IF ONLY ONE NOTE FILLS UNIT
2) 722 IF(NR.EQ.IRHY)GO TO 422
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 170
1) 505 L=0
**** File 2) BX.F4[NEW,LCS], Page 2 line 176
2) JDIF=0
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
2) 505 L=0
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 173
1) IF(MODE.EQ.3)GO TO 5032
1) C MODE 3 IS FOR ACCENTS ETC.
1) RN(8+IS)=0
**** File 2) BX.F4[NEW,LCS], Page 2 line 180
2) RN(8+IS)=0
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 179
1) IF(MODE.EQ.5)GO TO 104
1) IF(STEM.EQ.0)GO TO 503
**** File 2) BX.F4[NEW,LCS], Page 2 line 184
2) IF(STEM.EQ.0)GO TO 503
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 226
1) 5060 IF(MODE.EQ.3)GO TO 30
1) C NOW SLUR STARTS
1) IF(JMP)GO TO 504
1) C JMP=-1 MEANS END NOTE OF GROUP
**** File 2) BX.F4[NEW,LCS], Page 2 line 230
2) 5060 IF(JMP)GO TO 504
2) C JMP=-1 MEANS END NOTE OF GROUP
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 238
1) 777 IF(MODE.NE.4)GO TO 5061
1) IF(STEM.LE.0)GO TO 5061
1) C AUTOMATIC DIP DIRECTION FOR SLURS WITH AUTO. BEAMS.
**** File 2) BX.F4[NEW,LCS], Page 2 line 240
2) 777 IF(STEM.LE.0)GO TO 5061
2) C AUTOMATIC DIP DIRECTION FOR SLURS WITH AUTO. BEAMS.
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 246
1) 477 IF(R(10,MK).EQ.0)GO TO 1077
1) C SKIP NOTES ON ANOTHER STAFF.
1) MK=MK+1
1) GO TO 477
1) 1077 A=19.-R(5,MK)
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
**** File 2) BX.F4[NEW,LCS], Page 2 line 247
2) CC477 IF(R(10,MK).EQ.0)GO TO 1077
2) C SKIP NOTES ON ANOTHER STAFF.
2) CC MK=MK+1
2) CC GO TO 477
2) 477 CONTINUE
2) 1077 A=19.-R(5,MK)
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 263
1) IF(MODE.EQ.4)GO TO 550
1) IBR=6
1) C 6=SLUR, 7=BRACK. FOR TRIPLETS, ETC.
1) CC*** NOT NEEDED NOW WITH UPDN FEATURE. IF(STEM.GE.0)NN=-NN
1) IF(IT)GO TO 550
1) C IT=-1=SLUR INTO 1ST NOTE.
1) A=XNOTE(K)
1) C XNOTE IS AMOD(R(4,K),100.)
1) C SAVES LEVEL OF 1ST NOTE.
1) 504 RB=2
1) CS B=AMOD(R(6,K),1.0)
1) CS IF(B.GE.0.5)RB=3.
1) CS IF(B.EQ.0.4)RB=5.
1) C THESE ARE FOR >(.5) AND ∧(.4) ACCENTS
1) IF(NN)RB=-RB
**** File 2) BX.F4[NEW,LCS], Page 2 line 266
2) GO TO 550
2) 504 RB=2
2) IF(NN)RB=-RB
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 281
1) IF(MODE.EQ.4)GO TO 519
1) C TO MAKE MINI-BEAMS ON GRACE NOTES WHEN NEEDED.
1) IF(MODE.NE.5)GO TO 513
1) SLUR=0
1) C A FLAG FOR LATER USE.
1) JA=K
1) IF(JA.NE.0)GO TO 451
1) 1451 JA=JA+1
1) IF(R(1,JA).NE.1)GO TO 1451
1) 451 MB=R(5,JA)/10.
1) IF(MB.NE.0)GO TO 450
1) MB=1
1) X=R(4,JA)
1) IF(X.GT.80)X=X-100
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) IF(X.GT.6)MB=2
1) 450 IF(UPDN.EQ.0)GO TO 515
1) CCC??? IF(MB.EQ.0)MB=UPDN
1) C MB=0 IF 2ND NOTE IS WITHOUT STEM
1) IF(MB.EQ.UPDN)GO TO 515
1) X=6
1) IF(NN)X=-X
1) CS IF(RB)X=-X
1) RB=RB+X
1) JA=3
1) IF(JMP)JA=6
1) IF(NN)GO TO 204
1) CS IF(RB)GO TO 204
1) IF(UPDN.EQ.2)GO TO 516
1) 204 IF(UPDN.EQ.1)GO TO 516
1) C ABOVE FOR VARIOUS COMBINATIONS OF STEM DIRECTIONS
1) RB=-RB
1) NN=-NN
1) 516 IF(K.GT.1)GO TO 16
1) IF(IT)GO TO 513
1) 16 IF(K.NE.JNTC)GO TO 116
1) IF(N.GT.JNTC)GO TO 513
1) C JUMP IF N=99, BY PASS IF K IS NOT LAST NOTE OF LINE.
1) CCC116 SLUR=1.
1) 116 SLUR=0.5
1) IF(UPDN.EQ.1)SLUR=-SLUR
1) SLUR=SLUR*RSTJ2
1) RN(JA+IS)=RN(JA+IS)+SLUR
1) C THIS NOT DONE IF SLUR TO FIRST NOTE
1) GO TO 513
1) 519 SDIF=R(10,K)
1) IF(SDIF.EQ.0)GO TO 513
1) C JUMP IF IT'S NOT ON DIFF STF.
1) RA=RSTJ2*RNW
1) C NOTE WIDTH = RNW
1) IF(ABS(R(4,K)).LT.80)GO TO 520
1) RA=RA*.6
1) IF(JMP)B=B-100
1) C MINI
1) 520 IF(SDIF.EQ.2)RA=-RA
αq) C STAFF ABOVE
1) RN(JA+IS)=POS+RA
1) C ***** THIS CAN BE OFF A LITTLE IN SOME CASES!!******
1) SDIF=SDIF*5
1) IF(SDIF.NE.10)SDIF=20
1) CHANGES 1 TO 20, 2 TO 10.
1) GO TO 513
1) 517 IF(MB.EQ.1)GO TO 513
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) IF(RB)RB=-RB
1) GO TO 518
1) 515 UPDN=MB
1) C AUTO SLUR DIP DEPENDS ON STEM DIREC. OF 1ST NOTE. (WHOLE NTS??)
1) IF(NN)GO TO 517
1) IF(MB.NE.1)GO TO 513
1) RB=-RB
1) 518 NN=-NN
1) 513 RN(JB+IS)=B+RB
**** File 2) BX.F4[NEW,LCS], Page 2 line 272
2) 513 RN(JB+IS)=B+RB
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 370
1) 5503 RN(8+IS)=-1
1) RN(1+IS)=5
1) IF(IT)RN(4+IS)=RN(5+IS)
1) NN=-NN
1) C IF NN IS NEG. NOW IT MEANS STEM DOWN.(DIP IS UP!)
1) IF(N.EQ.99)GO TO 200
1) C TYPE /n 99/ FOR SLUR BEYOND NOTE HEAD (TO DIFF. PITCH ON NEXT LINE)
1) C /n x/ IS TIE TO SAME NOTE ON NEXT LINE. (X IS ANY NUMBER > LAST NOTE NUM.)
1) IF(MK.EQ.-99)GO TO 200
1) C TYPE /-99 n/ FOR SLUR FROM DIFF. NOTE ON PREVIOUS LINE.
1) C /0 n/ OR /-1 n/ IS TIE FROM SAME NOTE, PREV. LINE
1) C=0
1) C C WILL BE FLAG IN SECTION ON TIES BETWEEN CHORDS (AT 114)
1) AA=XNOTE(K)
1) IF(MK.EQ.JNTC)GO TO 61
1) C JNTC (NOTE COUNT) THE LAST NOTE(OR CHORD) OF INPUT
1) IF(N.EQ.1)GO TO 61
1) IF(IT)GO TO 2114
1) CXX IF(XNOTE(K).NE.A)GO TO 60
1) IF(N-MK.GT.1)GO TO 2114
1) CCC IF(R(5,M).NE.R(5,K))GO TO 65
1) CCC FOR SLUR OVER CHROMATIC CHANGE ON SAME NOTE NAME.
1) C M=1ST NOTE OF SLUR, K=LAST
1) B=R(5,K)
1) IF(AMOD(B,10.0).GT.0)GO TO 65
1) C JUMP IF LAST NOTE HAS ACCI.
1) C JUMP IF NOT ADJACENT NOTE AT SAME PITCH AND NOT 1ST OR LAST.
1) CXX61 C=9
1) CXX IF(JK)C=12
1) CXX IF(RN(6+IS)-RN(3+IS)-C*RSTJ2)GO TO 65
1) C JUMP IF SLUR IS VERY SHORT
1) IF(AA.EQ.A)GO TO 61
1) C NEXT FOR NOTES AT DIFFERENT LEVELS
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) IF(B.LT.20)GO TO 161
1) C ARE STEMS THE SAME DIRECTION. JUMP OUT IF SO.
1) IF(R(5,M).GE.20)GO TO 2114
1) GO TO 61
1) 161 IF(R(5,M).LT.20)GO TO 2114
1) 61 IF(IT)A=AA
1) C IT=-1=SLUR INTO 1ST NOTE.
1) CXX C=9
1) CXX IF(JK)C=12
1) C=6
1) IF(JK)C=8
1) C=RN(6+IS)-RN(3+IS)-C*RSTJ2
1) CATCHES VERY SHORT SLURS
1) CXX A=A+.7
1) B=-.7
1) IF(C.OR.A.NE.AA)B=-1.8
1) CXX IF(NN.GT.0)A=A-1.4
1) IF(NN)B=-B
1) C TO RAISE OR LOWER IT .7
1) RN(4+IS)=A+B
1) RN(5+IS)=AA+B
1) CXX RN(5+IS)=A
1) B=-2
1) IF(JK)B=-3
1) C JK=-1 WHEN NOTE IS DOTTED.
1) C THIS PUTS TIE BETWEEN (NOT ABOVE OR BELOW) NTS. NO STEM CHNG.
1) IF(C)B=-1
1) RN(8+IS)=B
1) IF(SLUR.EQ.0)GO TO 65
1) RN(3+IS)=RN(3+IS)-SLUR
1) RN(6+IS)=RN(6+IS)-SLUR
1) C PUSH SLUR BACK TO WHERE IT WAS
1) GO TO 65
1) C NEXT TO SHIFT SLUR IN RE. TO MARKS. STAC., TEN., ACC.
1) C ***********KN = 1ST NOTE, K=LAST NOTE.********
1) 2114 JA=KN
1) JB=4
1) 2503 RB=R(2,JA)
1) IF(RB.EQ.0)GO TO 3503
1) IF(BRK.NE.0)GO TO 6503
1) C IS IT A BRACKET INSTEAD OF A SLUR?
1) IF(RB.EQ.4.OR.RB.EQ.5)GO TO 4503
1) IF(RB.NE.7.AND.RB.NE.9)GO TO 3503
1) 6503 RB=1.5
1) IF(R(5,JA).LT.20)RB=-RB
1) RN(IS+JB)=RN(IS+JB)+RB
1) GO TO 3503
1) 4503 L=R(9,JA)
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) C THE POINTER TO P11 WAS SAVED HERE BY 'NEWR'
1) RN(L)=RN(L)+.2
1) 3503 IF(JA.EQ.K)GO TO 60
1) JA=K
1) JB=JB+1
1) GO TO 2503
1) C** 6/16/75 60 IF(STEM.GE.0)GO TO 508
1) 60 IF(STEM.GE.0)GO TO 200
1) IF(MODE.EQ.5)GO TO 200
1) C JUMP IF SLURS**************
1) C NEXT IS STEM INVERTER. SKIP IF AUTOMATIC BEAMS OR 'SU' 'SD' IN USE.
1) JB=1
1) RB=10.
1) IF(NN)GO TO 509
1) C IF NN IS NEG. NOW IT MEANS STEM DOWN.(DIP IS UP!)
1) RB=-RB
1) JB=2
1) 509 DO 507 L=M,K
1) IF(R(1,L).NE.1.)GO TO 507
1) JA=R(5,L)/10.
1) IF(JA.NE.JB)GO TO 507
1) IF(R(10,L).NE.0)GO TO 507
1) C LEAVE NOTE ON OTHER STAFF ALONE.
1) R(5,L)=R(5,L)+RB
1) INVT=0
1) C**********************************************
1) 507 CONTINUE
1) GO TO 200
1) 62 IF(NN)GO TO 64
1) IF(A.EQ.DMAX)GO TO 65
1) AA=B-DMAX
1) GO TO 63
1) 65 AA=0
1) GO TO 63
1) 64 IF(A.EQ.UMAX)GO TO 65
1) AA=UMAX-B
1) 63 RA=RN(6+IS)
1) RB=RN(3+IS)
1) CC DATA BX/25./,BY/.5/,DFAC/6./,CURV/0.9/
1) X=0.9+(RA-RB)/25.+ABS(RN(4+IS)-RN(5+IS))/10.
1) CC X=CURV+(RA-RB)/BX+ABS(RN(4+IS)-RN(5+IS))/10.
1) C CURVE DEPENDS ON LENGTH, TILT AND NOTES BETWEEN.
1) CC IF(AA.GT.0)X=X+AA*BY
1) IF(AA.GT.0)X=X+AA*.5
1) IF(BRK.EQ.0)GO TO 66
1) RN(8+IS)=1
1) RN(3+IS)=RB-.6
1) RB=R(3,K+1)
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) C K=END NOTE OF GROUP
1) IF(K.EQ.IZ)RB=200.
1) C IZ IS LAST ITEM IN R(N,M)
1) C**** IF(K.EQ.IRHY)RB=200.
1) C ASSUMES LINE STOPS AT 200. (IT COULD BE LONGER!!)
1) RN(6+IS)=RA+(RB-RA)/2.
1) IBR=7
1) C CHECK THESE NUMBERS↑↑↑↑
1) B=RN(4+IS)
1) BB=RN(5+IS)
1) RA=1
1) IF(A.LT.-1)RA=2.5
1) C CHANGES HEIGHT. MAKES BRACK. IF N>100.
1) IF(NN.GT.0)RA=-RA
1) RN(4+IS)=B+RA
1) RN(5+IS)=BB+RA
1) X=2
1) 66 IF(NN.GT.0)X=-X
1) 510 RN(7+IS)=X
1) IF(MODE.NE.4)GO TO 2514
1) CC RN(9+IS)=0
1) RN(10+IS)=0
**** File 2) BX.F4[NEW,LCS], Page 2 line 289
2) C ***********KN = 1ST NOTE, K=LAST NOTE.********
2) 510 RN(7+IS)=X
2) RN(10+IS)=0
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 525
1) IF(JB)CALL BMX(RA)
1) GO TO 514
1) 2514 L=IS
1) CALL UPDATE(IBR)
1) CC IF(M.EQ.K)GO TO 514
1) IF(C.EQ.0)GO TO 514
1) C JUMP OUT IF INTERVENING NOTE. C≠0 = TIE BETWEEN NOTES
1) IF(RN(L+4).NE.RN(L+5))GO TO 514
1) C IS IT LEVEL?
1) B=-RN(IS-2)
1) C CHANGE DIRECTION OF DIP AFTER FIRST SLUR.
1) CZZ RA=1.4
1) RA=.7
1) IF(RN(L+8).EQ.-1)RA=RA+1.3
1) C IS TIE NOT BETWEEN NOTES?
1) IF(NN.GT.0)RA=-RA
1) C DIP DIRECTION. NN+ =DOWN, NN- =UP. REVERSED AFTER 1ST ONE.
1) CZZ RA=XNOTE(M)+RA
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) C=-2.
1) IF(RN(L+8).EQ.-3.)C=-3.
1) C PUT TIE BETWEEN NOTES ALWAYS.
1) JA=M
1) JB=K
1) IF(MK)JA=JB
1) C FOR TIES TO 1ST OF LINE
1) IF(N.GT.JNTC)JB=JA
1) C FOR END OF LINE CHORDS JNTC=TOTAL OF NOTES (NOTE COUNT)
1) RC=R(3,JA)
1) 114 JA=JA+1
1) JB=JB+1
1) IF(RC.NE.R(3,JA))GO TO 514
1) CC IF(R(3,JB).NE.POS)GO TO 514
1) C JUMP IF RIGHT-HAND NOTE NOT IN SAME POS.
1) IF(R(1,JA).NE.1)GO TO 514
1) C CATCHES THINGS BETWEEN NOTES
1) IF(R(4,JA).NE.R(4,JB))GO TO 514
1) C LOOKS FOR PARALLEL CHORDS NOTES
1) CRH IF(R(9,JA)+R(9,JB).NE.0)GO TO 514
1) C MAKES SURE THEY ARE CHORD NOTES.
1) A=XNOTE(JA)
1) BB=RA
1) IF(AMOD(A,2.0).EQ.0)BB=BB/2.
1) C MOVE SLUR 1/2 IF IT WOULD LAND ON A SPACE (EVEN NUMS).
1) A=A-BB
1) CZZZ A=XNOTE(JA)-RA
1) CZZ A=XNOTE(JA)-RA+RN(L+5)
1) RN(IS)=6.
1) RN(IS+1)=5.
1) RN(IS+2)=RN(IS-7)
1) RN(IS+3)=RN(IS-6)
1) RN(IS+6)=RN(IS-3)
1) RN(IS+7)=B
1) RN(IS+8)=C
1) RN(IS+4)=A
1) RN(IS+5)=A
1) CALL UPDATE(IBR)
1) GO TO 114
1) 514 J=J+1
**** File 2) BX.F4[NEW,LCS], Page 2 line 294
2) JA=IS
2) C************************************** BMX ***********
2) IF(JB)CALL BMX(RA)
2) IF(JA.NE.IS)GO TO 514
2) IF(JDIF.EQ.0)GO TO 514
2) C FOR NEW COMPOSITE BEAM FEATURE 4/78
2) IF(RA.EQ.1)GO TO 514
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
2) RN(7+KDIF)=X-1
2) RN(10+KDIF)=100
2) RN(8+KDIF)=R(3,JDIF-1)
2) RN(9+KDIF)=R(3,JDIF)
2) 514 J=J+1
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 590
1) CC***USE NO NUMBS IN COMMENTS IN MODE 3-5****** IF(VX(J+2).EQ.0)GO TO 614
1) IF(J.LT.50)GO TO 514
**** File 2) BX.F4[NEW,LCS], Page 2 line 312
2) IF(J.LT.50)GO TO 514
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 594
1) IF(MODE.NE.5)GO TO 714
1) C NEXT FOR TWO SLURS ON SAME POS. LOOKS AT LEFT SIDE FIRST.
1) NS=LS
1) C NEXT ARE PARAMS 4, 3, 6 OF SLUR. 2ND TIME AROUND USE 5, 6, 3.
1) N=4
1) NA=3
1) NB=6
1) 1314 IF(RN(LS+8).LT.-1)GO TO 714
1) C SKIP OUT IF SLUR IS IN BETWEEN NOTES (P8=-2 OR -3)
1) JS=LS
1) X=1.8
1) IF(RN(LS+7))X=-X
1) A=RN(LS+NA)
1) B=RN(LS+NB)
1) C A AND B ARE THE TWO HORIZ. POSITIONS. RA IS HEIGHT.
1) RA=RN(LS+N)
1) 814 MB=RN(JS)+JS+3
1) C MB IS THE NEXT SLUR
1) IF(MB.LT.IS)GO TO 1514
1) LS=RN(LS)+LS+3
1) C MOVE AHEAD ONE SLUR
1) IF(LS.GE.IS)GO TO 1214
1) GO TO 1314
1) 1514 IF(RN(MB+8).LT.-1)GO TO 1014
1) IF(A.NE.RN(MB+NA))GO TO 1014
1) D=RN(MB+NB)
1) C MAYBE PUT IN SOMETHING HERE TO CATCH SLURS WITH OPPOSITE DIPS.
1) JB=MB
1) IF(N.EQ.5)GO TO 1414
1) IF(B.GT.D)JB=LS
1) GO TO 1114
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) 1414 IF(D.GT.B)JB=LS
1) 1114 BB=RN(N+JB)
1) IF(ABS(BB-RA).LT.0.5)RN(N+JB)=BB+X
1) C SHIFT HEIGHT OF SLUR ONLY IF HEIGHT IS CURRENTLY THE SAME.
1) 1014 JS=MB
1) GO TO 814
1) 1214 IF(N.EQ.5)GO TO 714
1) C START AGAIN, LOOK AT RIGHT END OF SLURS NOW
1) N=N+1
1) NA=6
1) NB=3
1) LS=NS
1) GO TO 1314
1) 714 IF(INVT)RETURN
**** File 2) BX.F4[NEW,LCS], Page 2 line 316
2) 714 IF(INVT)RETURN
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 646
1) CC552 IF(IREAD.NE.0)GO TO 3501
1) CC CALL TYPE
1) CC WRITE(21,4501)INP
1) CC GO TO 5501
1) CC3501 IF(IREAD.EQ.-1)READ(22,2501)J,INP
1) CC IF(IREAD.EQ.-2)READ(22,4501)INP
1) CC CALL TYPOUT
1) CC5501 CALL LNEND
1) C FOR NEW 'SCORE' CONVENTIONS
1) C TO READ MORE THAN 2 LINES.
1) GO TO 25
1) C FOR 2ND LINE.
1) CC4501 FORMAT(72A1)
1) CC2501 FORMAT(I,72A1)
1) 35 RA=10.
**** File 2) BX.F4[NEW,LCS], Page 2 line 322
2) C TO READ MORE THAN 2 LINES.
2) GO TO 25
2) 35 RA=10.
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 675
1) DO 2 L=KN,K
1) IF(R(1,L).NE.1)GO TO 2
1) IF(R(10,L).NE.0)GO TO 2
1) C SKIP NOTES ON ANOTHER STAFF.
1) BB=R(5,L)
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) IF(BB.GE.10.)GO TO 12
**** File 2) BX.F4[NEW,LCS], Page 2 line 339
2) RDIF=0
2) C JDIF AND RDIF ARE FOR NEW COMPOSITE BEAM FEATURE 5/78
2) JDIF=0
2) DO 2 L=KN,K
2) IF(R(1,L).NE.1)GO TO 2
2) IF(JDIF.NE.0)GO TO 1212
2) BB=RHY(L)
2) IF(BB.LE.0)GO TO 1212
2) IF(BB.EQ.4./88.)GO TO 1212
2) IF(RDIF.NE.0)GO TO 2212
2) RDIF=BB
2) C NOW WE HAVE FIRST RHYTH. VALUE UNDER BEAM
2) GO TO 1212
2) 2212 IF(RDIF.EQ.BB)GO TO 1212
2) JDIF=L
2) KDIF=IS
2) C FOUND A DIFF. RHYTH. UNDER BEAM
2) CXCX1212 IF(R(10,L).NE.0)GO TO 2
2) C SKIP NOTES ON ANOTHER STAFF.**************?????????????
2) 1212 BB=R(5,L)
2) IF(BB.GE.10.)GO TO 12
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 705
1) IT=K
1) C FOR EXTRA BEAMS WITH CHORDS. SAVE IT IN "IT"
1) IF(STEM.GT.0)GO TO 577
1) C *****↑↑↑↑↑↑ ABOVE WAS ".NE." BEFORE 4/30/76. WHY?#@&Xαε
**** File 2) BX.F4[NEW,LCS], Page 2 line 384
2) IT=KN
2) M=3
2) 203 IF(R(10,IT).EQ.0)GO TO 202
2) IF(STEM.EQ.0)GO TO 202
2) C=RNW
2) IF(NN)GO TO 206
2) IF(R(5,IT).LT.20)GO TO 202
2) C=-C
2) GO TO 205
2) 206 IF(R(5,IT).GE.20)GO TO 202
2) 205 IF(ABS(R(4,IT)).GE.80.)C=C*.6
2) C FOR MINI BEAMS
2) RN(M+IS)=RN(M+IS)+C*RSTJ2
2) 202 IF(IT.NE.KN)GO TO 201
2) IT=K
2) M=6
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
2) GO TO 203
2)
2) C FOR EXTRA BEAMS WITH CHORDS. SAVE IT IN "IT"
2) 201 IF(STEM.GT.0)GO TO 577
2) C *****↑↑↑↑↑↑ ABOVE WAS ".NE." BEFORE 4/30/76. WHY?#@&Xαε
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 711
1) CXX IF(STEM.GT.0)NN=10.-STEM
1) C SETS AUTO. BEAMS' STEM DIRECTION.
**** File 2) BX.F4[NEW,LCS], Page 2 line 407
2) C SETS AUTO. BEAMS' STEM DIRECTION.
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 715
1) IF(SDIF.NE.0)X=SDIF
1) IF(MB)RA=2
**** File 2) BX.F4[NEW,LCS], Page 2 line 410
2) IF(MB)RA=2
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 723
1) CC IF(R(9,L).NE.0)GO TO 307
1) IF(R(5,L).GE.10)GO TO 307
**** File 2) BX.F4[NEW,LCS], Page 2 line 417
2) IF(R(5,L).GE.10)GO TO 307
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 728
1) 307 IF(R(10,M).EQ.0)GO TO 607
1) M=M+1
1) C SKIP NOTES ON OTHER STAFF
1) GO TO 307
1) 607 A=XNOTE(M)
1) CW307 A=XNOTE(M)
1) C A=NOTE 1.
**** File 2) BX.F4[NEW,LCS], Page 2 line 421
2) 307 CONTINUE
2) 607 A=XNOTE(M)
2) C A=NOTE 1.
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 747
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) 103 DO 3 M=KN,K
1) IF(R(1,M).NE.1)GO TO 3
1) IF(R(10,M).NE.0)GO TO 3
1) C SKIP NOTES ON OTHER STAFF
1) IF(M.EQ.K)GO TO 107
1) CW IF(R(10,M).NE.0)GO TO 107
1) IF(R(1,M+1).NE.1)GO TO 107
1) C IT ONLY CARES ABOUT NOTES!
1) CC IF(R(9,M+1).EQ.0)GO TO 3
1) IF(R(5,M+1).LT.10)GO TO 3
**** File 2) BX.F4[NEW,LCS], Page 2 line 436
2) 103 IF(STEM.EQ.0)GO TO 603
2) MMS=R(5,KN)/10.
2) DO 703 M=KN+1,K
2) 703 IF(MMS.NE.IFIX(R(5,M)/10.))GO TO 4
2) C SKIP NEXT IF STEMS ARE SPECIFIED IN DIFF. DIRECTIONS. (GRACE NTS??)
2) 603 DO 3 M=KN,K
2) IF(R(1,M).NE.1)GO TO 3
2) CXCXCX IF(STEM.NE.0.AND.R(10,M).NE.0)GO TO 3
2) C SKIP NOTES ON OTHER STAFF
2) IF(M.EQ.K)GO TO 107
2) IF(R(1,M+1).NE.1)GO TO 107
2) C IT ONLY CARES ABOUT NOTES!
2) IF(R(5,M+1).LT.10)GO TO 3
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 763
1) IF(MODE.EQ.5)GO TO 55
1) 677 IF(R(10,M).NE.0)GO TO 55
1) C DON'T CHANGE STEM DIR. IF NOTE IS ON OTHER STAFF!!!!
**** File 2) BX.F4[NEW,LCS], Page 2 line 455
2) 677 IF(STEM.NE.0.AND.R(10,M).NE.0)GO TO 55
2) C DON'T CHANGE STEM DIR. IF NOTE IS ON OTHER STAFF!!!!
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 795
1) 4 IF(MODE.EQ.5)GO TO 62
1) K=IT
1) C FOR EXTRA BEAMS WITH CHORDS. K WAS SAVED IN "IT"
**** File 2) BX.F4[NEW,LCS], Page 2 line 486
2) 4 K=IT
2) C FOR EXTRA BEAMS WITH CHORDS. K WAS SAVED IN "IT"
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 820
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) CC446 DIS=(RN(IS+6)-RN(IS+3))/DFAC
1) C FOR TILT LATER -- DFAC IS IN DATA
1) IF(ABS(A-B).LT.DIS)GO TO 143
**** File 2) BX.F4[NEW,LCS], Page 2 line 510
2) C FOR TILT LATER --
2) IF(ABS(A-B).LT.DIS)GO TO 143
***************
**** File 1) BEAMS.OL2[NEW,LCS], Page 1 line 895
1) C NEXT IS FOR ACCENTS AND OTHER MARKS
1) 30 IF(JREP)CALL MARKS(RA)
1) RB=0
1) C%%%%%%%%
1) J=J+1
1) IF(RA.GE.30.AND.RA.LE.35)VX(J+1)=0
1) C THIS ↑↑↑↑ CATCHES FINGERING NUM.(0-5) IT WAS READ IN MARKS.
1) IF(RA.EQ.99)RA=VX(J)
1) C IF STEM IS DOWN OR THERE ARE NOTES BELOW(DBL STP), POSITION
1) C OF ACCENT WILL BE INVERTED.
1) 130 IF(RA.LT.37)GO TO 304
1) C 37=RIT.
1) C=POSIT(VX(J-1))-1.5
1) C '-1.5' PUSHES IT TO LEFT. MAYBE CHANGE ORIGINAL POSITIONS??
1) IF(RA.LE.60.OR.RA.GT.63)GO TO 308
1) C NEXT FOR TREMOLO: TM, TME, TMS, =32ND, 8TH, 16TH
1) NN=11
1) A=8
1) C A IS WDCNT-2
1) B=6
1) C CODE NUM. IS IN B
1) C=C+1.5
1) C FIND POSITION OF THIS NOTE
1) BB=R(4,K)
1) C BB=HEIGHT
1) RC=AMOD(R(7,K),10.0)
1) C LOOK FOR TAILS
1) X=0
1) IF(RA.EQ.61)X=1
1) C RA=61= 8TH NOTE BEAM
1) AA=R(8,K)
1) C TREM. POS. WILL DEPEND ON NOTE POS. AND STEM LENGTH
1) IF(AA.NE.0)GO TO 2309
1) AA=1-X
1) R(8,K)=1.2-X
1) 2309 AA=AA-1
1) C AA = AMOUNT TO BE ADDED OR SUBTRACTED WITH HEIGHT OF NOTE
1) IF(R(5,K).GE.20)GO TO 1309
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) C CHECK ON STEM DIRECTION
1) X=-(RA-50)
1) C MAKES -11, -12, -13, ETC.
1) CV IF(RC.EQ.0)GO TO 309
1) CV X=-12
1) CV NO C PUSH TREM UP OR DOWN 2 IF TAIL
1) IF(RC.NE.0)BB=BB-2
1) GO TO 309
1) 1309 X=-(RA-40)
1) C MAKES -21, -22, ETC.
1) AA=-AA
1) IF(RC.NE.0)BB=BB+2
1) 309 BB=BB+AA
1) C OK FOR 16TH AND 32ND - BUT 8TH NEEDS MORE WORK******
1) RN(IS+7)=X
1) RN(IS+6)=0
1) C EXTEND THE STEM
1) RC=0
1) RN(IS+8)=0
1) RN(IS+9)=0
1) RN(IS+10)=0
1) C ABOVE IS TO LEAVE ROOM FOR CHANGE OF TREM TO BE PARALLEL TO OTHER BM.
1) GO TO 305
1) 308 NN=6
1) RC=RA
1) BB=-6
1) A=3
1) B=3
1) IF(XNOTE(K).LT.3)BB=XNOTE(K)-7.5
1) C LOWERS ITEM IF NOTE BELOW STAFF. BUT IS 'K' ALWAYS OK HERE??????
1) IF(RA.LT.99)GO TO 305
1) C NEXT FOR CRESC. & DECRSC. LINES<,>. TYPE /NT1 C+ NT2/ OR /N1.d C- N2.d/
1) C ALSO FOR "8va ----" /NT1 O NT2/
1) NN=8
1) BB=BB+2.5
1) A=5
1) B=4
1) RB=50
1) IF(RA.NE.208)GO TO 306
1) RB=0
1) B=7
1) BB=15
1) C LATER ADD CHECK FOR HEIGHT OF NOTES UNDER 8va.
1) 306 RN(IS+7)=RA-200
1) C MAKES ZERO OR -1 OR 8 IN P7
1) RC=RB
1) C ADDS A NEW ITEM. MP, PP, CRESC., ETC. --CODE 3
1) 305 RN(IS)=A
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) RN(IS+1)=B
1) RN(IS+2)=STAFF
1) C PUTS MF, ETC. BETWEEN NOTES. (I HOPE) SEE 'FUNCTION POSIT' BELOW
1) RN(IS+3)=C
1) C C HAS HORIZONTAL POS.
1) RN(IS+4)=BB
1) C DIST. BELOW STAFF
1) RN(IS+5)=RC
1) C THE CODE NUM IN 'CLEFS' LIST
1) IS=IS+NN
1) IF(B.EQ.3.OR.B.EQ.6)GO TO 230
1) CC IF(NN.EQ.6.OR.B.EQ.6)GO TO 230
1) C B=6=TREM. NN=6=WORDS OR LTRS. UNDER STAFF.
1) J=J+1
1) RC=POSIT(VX(J))
1) IF(RB.EQ.0)RC=RC+3
1) C RB=0= 8va
1) RN(IS-2)=RC
1) C THIS IS P6 (POS2 FOR CRESC. LINES)
1) GO TO 514
1) CS304 RB=R(6,K)
1) CS B=10.
1) CS IF(RA.EQ.6)RA=26.
1) C TEMPORARY CHANGE FOR FERMATA*******
1) CS IF(RA.GT.10.)RA=RA/10.
1) CS A=ABS(AMOD(RB,1.))
1) CS IF(A.EQ.0)GO TO 301
1) CS IF(RA.GT.3)GO TO 303
1) CS RB=FLOAT(IFIX(RB))
1) CS RA=RA+A/10.
1) C THIS PUTS 2-DIGIT CODE BEFORE 1-DIGIT CODE.
1) CS GO TO 301
1) CS303 IF(A.LT..3)GO TO 302
1) CS B=100.
1) CS GO TO 301
1) CS302 B=1000.
1) CS301 IF(RB.LT.0)RA=-RA
1) CS R(6,K)=RB+RA/B
1) 304 RB=R(2,K)
1) IF(RA.EQ.6)RA=26.
1) A=RA
1) IF(RB.EQ.0)GO TO 301
1) IF(RB.GE.10)GO TO 303
1) A=A*100
1) GO TO 301
1) 303 RB=RB*100
1) 301 R(2,K)=RB+A
1) C P11 INFO(MARKS) IS TEMPORARILY STORED IN P2 (STAFF# IS IN STAFF)
1) BEAMS.OL2[NEW,LCS] and 2) BX.F4[NEW,LCS] 5-17-78 12:46 pages 1,2
1) 230 A=VX(J)
1) JREP=-1
1) IF(A.EQ.0)GO TO 514
1) C NEXT FOR STRING OF SAME MARK ( /3 12 S/ )
1) IF(A.GT.JNTC)A=JNTC
1) C WON'T PUT MARK BEYOND LAST NOTE
1) JREP=0
1) J=J-1
1) VX(J)=VX(J)+1
1) IF(VX(J).GE.A)VX(J+1)=0
1) J=J-1
1) GO TO 514
1) C USES 4-7,9,11-13 FOR ACC. > FERM. DOT - DNBOW UPBOW HARM.
1) C NOTE#,ACCENT#/N,A/N,A*
1) END
1) FUNCTION NREST(K)
1) COUNTS REST FROM START OF LINE UP TO ITEM K-1 (K IS A NOTE)
1) COMMON /SCM/V(1)
1) NREST=0
1) DO 1 J=1,K-1
1) 1 IF(V(J))NREST=NREST+1
1) END
**** File 2) BX.F4[NEW,LCS], Page 2 line 584
2) END
***************